#!/usr/bin/env python
#coding:utf8

import random

'''
作业: 完成一个模块, 模块中有一个排序list函数 函数支持正序和倒序 排序
方法:
    1、可以用冒泡排序实现
    2、递归实现
'''

# 版本1
def sort_v1(lists, reverse=False):
    """接收一个列表, 可以实现按照从小到大或从大到小排序"""
    if not isinstance(lists, list):
        raise TypeError('must be an list object')

    for m in xrange(1, len(lists)):
        for n in xrange(len(lists)-m):
            if lists[n] > lists[n+1]:
                lists[n], lists[n+1] = lists[n+1], lists[n]

    if not reverse:
        return lists
    else:
        ret = list(reversed(lists)) # 翻转方式1
        return ret

# 版本2
def sort_v2(lists, reverse=False):
    """接收一个列表, 可以实现按照从小到大或从大到小排序"""
    if not isinstance(lists, list):
        raise TypeError('must be an list object')

    for i in xrange(len(lists)):
        for j in xrange(i+1, len(lists)):
            if lists[i] > lists[j]:
                lists[i], lists[j] = lists[j], lists[i]
    if not reverse:
        return lists
    else:
        ret = lists[::-1]  # 翻转方式2
        return ret


if __name__ == '__main__':
    li = [random.randrange(100)  for _ in xrange(20)]
    print(sort_v2(lists=li))                  # 从小到大排序
    print(sort_v2(lists=li, reverse=True))    # 从大到小排序